這是我第一次參與iThome鐵人賽,也是第一次嘗試撰寫技術文章!在軟體開發的路上我們要學的東西真的亂七八糟的多,隨著Vibe Coding愈來越火熱,建置自己的專案的門檻也越來越低,不過除了AI可以協作的本地開發以外,專案部署以及產品可靠性更是軟體工程中重要的一環,希望本系列文章可以帶各位熟悉AWS的操作環境以及Cloud Native的特性,讓開發更順利。
這個系列的主要族群應該是較少or未曾接觸過雲服務商的開發者,所以今後會帶到的內容都偏向基礎&低門檻,主要訴求是讓各位對雲上服務的操作和業務實現能夠有非常具體的想像!但雲端上的服務真的有蠻多眉角需要好好解釋,我也在慢慢拿捏尺度... 若是有內容上的建議或是希望看到的內容也歡迎在留言區交流!請各位多多指教
Cloud Native (雲端原生) 這個名詞的定義眾說紛於,各家有各家的說法
但既然我們的目標是蹭AWS的免費服務,在本文我們依照 Amazon Web Service(AWS) 所提供的文件來解釋:
雲端原生是在雲端運算環境中建置、部署和管理現代應用程式的軟體方法。現代的公司希望建置高度可擴展、靈活和有彈性的應用程式,以便快速更新以滿足客戶需求。為此,他們使用現代工具和技術,這些工具和技術在本質上支援雲端基礎設施上的應用程式開發。這些雲端原生技術支援對應用程式進行快速且頻繁的變更,而不會影響服務交付,從而為採用者提供創新優勢和競爭優勢。
什麼意思呢?用簡單的方式理解大概可以整理成這幾點:
Cloud Native 簡單理解的 4 個要點(AWS 觀點)
雲端優先(Cloud-first)
不再依賴實體伺服器或固定環境,而是直接使用雲端提供的資源。
例如:採用雲端原生運算、儲存與資料庫服務,避免自建基礎設施
高度可擴展(Scalability)
系統可以自動因應流量增減,避免過載或浪費資源。
例如:使用可自動擴展的運算與全球內容分發機制,動態調整服務容量。
快速迭代(Rapid iteration)
功能可以頻繁更新、上線,而不必中斷服務。
例如:採用基礎設施即程式碼與自動化部署流程,縮短開發到上線的時間。
彈性與韌性(Resilience & Flexibility)
系統設計能在部分服務故障時繼續運作。
例如:透過事件驅動架構與多區域冗餘,確保服務持續可用。
除此之外一定還耳聞過DevOps、Serverless等等的名詞,這些可以說是以上的特點中較具體的實現概念or角色。
如果以上有未曾接觸過的名詞、AWS服務不用擔心!在接下來的內容皆會慢慢展開介紹!
當然除了以上提及的特點之外,還有容器化(Containerization)、微服務(Microservice Architecture)等較具體的特點,只不過僅靠 AWS Free Tier中所提供的服務較不適合做這方面的學習,於是我們將以上四個特點作為主要注重的目標來建構我們的服務。
在接下來的文章中,我們會用 AWS 免費額度(Free Tier)一步步實作一個 雲原生服務 做出實際跑在雲端上的應用,我也還在學習中XD,希望在這一系列文章中可以和各位一同成長!